package com.szp.drug.component.service.api;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.szp.drug.entity.DrugAdmin;
import com.szp.drug.entity.DrugRole;

import java.util.List;

/**
 * 管理员service接口
 * @author SuZePing
 * @create 2021-01-09 21:05
 * @E-mail suzeping10@126.com
 */
public interface DrugAdminService extends IService<DrugAdmin> {

	/**
	 * 分页获取管理员列表(含关键词搜索)
	 * @param keyword
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageInfo<DrugAdmin> getPageInfo(String keyword, Integer pageNum, Integer pageSize);

	/**
	 * 删除admin
	 * @param userId
	 */
	void removeAdmin(String userId);

	/**
	 * 新增admin
	 * @param admin
	 */
	void saveAdmin(DrugAdmin admin);

	/**
	 * 修改admin时回显数据
	 * @param adminId
	 * @return
	 */
	DrugAdmin getAdminById(String adminId);

	/**
	 * 修改admin
	 * @param admin
	 */
	void editAdmin(DrugAdmin admin);

	/**
	 * 查询该管理员已拥有的角色
	 * @param adminId
	 * @return
	 */
	List<DrugRole> getAssignedRole(String adminId);

	/**
	 * 查询该管理员未拥有的角色
	 * @param adminId
	 * @return
	 */
	List<DrugRole> getUnassignedRole(String adminId);

	/**
	 * 为管理员分配角色
	 * @param adminId
	 * @param roleIdList
	 */
	void saveAssignAdminRole(String adminId, List<String> roleIdList);

	/**
	 * 根据account获取DrugAdmin对象
	 * @param account
	 * @return
	 */
	DrugAdmin getAdminByAccount(String account);
}
